<?php
namespace app\admin\controller;
use app\admin\controller\Common;
use think\validate;
class Config extends Common
{
    public function Conflst()
    {
        
        if(request()->isPost()){
            $data=input('post.');
            $ennameArr=db('config')->column('enname');
            //附件类型处理
            $imageArr=db('config')->where('dt_type',6)->column('enname');
            foreach ($ennameArr as $m => $n) {
                  if(!in_array($n,$data) && !in_array($n,$imageArr)){
                     $save=db('config')->where('enname',$n)->update(['value'=>'']);
                  }
               } 
            foreach ($data as $k => $v) {
                if(is_array($v)){
                    $v=implode(',', $v);
                }    
               $save=db('config')->where('enname',$k)->update(['value'=>$v]);
            }
            
            //dump($imageArr);die;
            foreach ($imageArr as $k=> $v) {
                if($_FILES[$v]['tmp_name'] != ''){
                        // 获取表单上传文件
                        $files = request()->file($v);
                      // 移动到框架应用根目录/public/uploads/ 目录下
                        $info= $files->validate(['size'=>2097152,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public/static/admin/uploads');
                        if($info){ 
                             $imageSrc=$info->getSaveName();
                             $path='/CMS-tp5/public/static/admin/uploads/'.$imageSrc;
                             db('config')->where('enname',$v)->update(['value'=>$path]);
                        }else{
                            // 上传失败获取错误信息
                           $this->error($file->getError());
                        }    
                 
                }
            }
            
            $this->success('修改配置项成功！',url('config/lst'));
            return;
        }
        $confres=db('config')->select();
        $this->assign('confres',$confres);
        return view();
    }

    public function lst()
    {
    	$data=db('config')->field('id,cnname,enname,values,value')->paginate(6);
    	//dump($data);die;\
    	$this->assign('data',$data);
        return view();
    }
    public function add()
    {
    	if(request()->isPost()){
    		$data=input('post.');
    		//把values中的中文逗号转换成英文逗号
    		if($data['values']){
    			$data['values']=str_replace('，', ',', $data['values']);
    			}
             //验证器验证规则   
            //$validate = \think\Loader::validate('Config');完全限定方式
            $validate = validate('Config');//助手函数
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError());
            } 
    		//dump($data);die;
    		$add=db('config')->insert($data);
    		if($add){
    			$this->success('配置添加成功！',url('config/lst'));
    		}else{
    			$this->error('配置添加失败！');
    		}
    		return;
    	}
        return view();
    }

    public function edit()
    {
    	if(request()->isPost()){
    		$input=input('post.');	
            //验证器验证规则  
            $validate = validate('Config');//助手函数
            if(!$validate->scene('edit')->check($input)){
                $this->error($validate->getError());
            }
             $save=db('config')->update($input);
    		//dump($save);die;
    		//不做任何修改提交结果为零，所以要加判断不修改数据情况
    		if($save || $save ==0){
    			$this->success('配置修改成功！',url('config/lst'));
    		}else{
    			$this->error('配置修改失败！');
    		}
    		return;
    	}

    	$data=db('config')->find(input('id'));
    	$this->assign('data',$data);
        return view();
    }

    public function del()
    {
    	
    	$del=db('config')->delete(input('id'));
    	if($del){
    			$this->success('配置删除成功！',url('config/lst'));
    		}else{
    			$this->error('配置删除失败！');
    	}
        return view();
    }
}
